#####################################################################
# Product:      KnowledgeEngine (Plone Edition)
#
# File:         Exportable.py
#
# Copyright:    Copyright (c) 2007, Faulkner Technologies
#
# Author:       John Meredith
#
# Description:  The Exportable mix-in provides basic export support
#               for KE components. Exportable components do not
#               necessarily have state, however those will probably
#               have children with state eg. Selection component
# 
#               NOTE: Classes mixing in this implementation MUST
#               ensure that the corresponding ClassInfo for the said 
#               classes have their isInstanceOf methods modified
#               to return true for the 'Exportable' interface.
#####################################################################

#####################################################################
## KnowledgeEngine Library Imports
# (none)

#####################################################################
## Zope Library Imports
# (none)
 
#####################################################################
## Python Library Imports
# (none)

#####################################################################
## Exportable Class Definition
class Exportable:
    """
        Defines storage meta information and processing functions
        to support a stateful component (during assessments)
    """


    #---------------------------------------------------------------#
    def __init__(self):
        """
            Constructor for the object
        """
        
        #this is a stateless mix-in
        pass
        
    
    #---------------------------------------------------------------#
    def getComponentCSVValue(self, assessment, displayReportContent=False):
        """
            Return the CSV friendly version of the component. Really
            only applies to Exportable components
        """

        pass

#####################################################################
## Class Initialisation
# (none)
